package jmine.tec.subscription;

import java.io.Serializable;

/**
 * Publicacao, ou seja, uma nova informacao publicada por um source. Eh importantissimo que uma {@link Publication} seja
 * {@link Serializable} e leve, para a replicacao em nos de um cluster.
 * 
 * @author takeshi
 */
public interface Publication extends Serializable {

    /**
     * Devolve uma String de identificacao. Essa string nao pode ser modificada, mesmo com uma atualizacao nesta publication.
     * 
     * @return {@link String}
     */
    String getIdentification();

    /**
     * Verifica se uma publicacao eh mais nova do que outra
     * 
     * @param another outra publicacao
     * @return boolean
     */
    boolean isNewerThan(Publication another);

}
